try, finally에 모두 예외가 발생하는 경우에는 어떻게 될까?

@VERO
Created Date · 2023년 04월 07일 00:04
Last Updated Date · 2023년 04월 07일 00:04

예외가 동시에 발생하는 경우

  • 새로운 예외가 catch, finally 블록에서 발생하는 경우, 현재 예외가 이전 예외를 무시하고 외부로 전파된다. (메서드는 단 하나의 예외만 던질 수 있으므로)
  • 새로운 예외는 다른 예외와 동일하게 스택을 풀기 시작한다. (stack unwinding)
  • catch 블록에서 새 예외가 발생하는 경우, 해당 예외는 catchfinally 블록의 영향을 받는다.
  • try/catchfinally 가 존재하는 경우, finally 는 예외를 catch한 후에 실행된다. 그러나 예외를 던지기 전에 finally 까지 실행한 후에 가장 마지막 예외가 던져진다.
  • 스택 풀기

참고 자료